home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-03
/
muscle.zip
/
MUSCLE.SLB
(
.txt
)
< prev
next >
Wrap
MicroHelp
|
1991-04-16
|
59KB
|
1,024 lines
MicroHelp Library
pqtsr~0>?
INC.
4636 Huntridge Drive, Roswell, Georgia 30075
(404) 552-0565
Press <Esc> to quit or any other key to continue the demo
pqtsr~0>?4
The following system information was obtained using routines in Muscle
Are the following drivers loaded?
ANSI.SYS
QuickBasic Hercules driver..
BC7 ProISAM or ProISAMd
DOS Share
Current Directory..
Default Drive
Last Drive
! Valid Drives
You can obtain the same information from inside your BASIC programs. For
instance, you can check to see if the Hercules driver is loaded before you
do any graphics that require it. If it is not loaded you can issue a warning
and exit the program gracefully. Or you might be using file locking
procedures that require the DOS SHARE program to be loaded. Now you may
check to see if it is loaded BEFORE you encounter an error. Have you ever
wanted to find the valid drives on a system WITHOUT physically accessing the
drives? Now you can. Press a Key for the Menu.
pqtsr~0>?4
Please enter the name of the file that you would like to edit
Include the drive and path if needed.
pqtsr~0>?4
This file was not found
Do you wish to create it Y/N
<Esc> to cancel
pqtsr~0>?4
Muscle Demo
You can create "PullDown" menus in your programs using a
single CALL from MicroHelp's Muscle. These menus have
mouse support built right in. If you prefer, use the arrow
keys on your keyboard or press a highlighted letter to
make the desired selection.
You can optionally add transparent "shadows" to your
pulldown menus. We have turned this feature on so you can
see it in action.
Command Line Switches for This Demo
(to bypass the opening screens)
/M to reach this menu.
/D to start DirUtil.
/E to start the editor.
/C to start the calculator.
/B for Black and White mode.
For Example: MUSCLE /D to run DirUtil without this menu
pqtsr~0>?4
Welcome to MicroHelp's text editor
Change Configuration
Load File
Save File
Exit Editor
pqtsr~0>?4
You specified an illegal file
name. The file is not saved.
Press a key
pqtsr~0>?4
An error occured saving the
file. The file is not saved.
Press a key
pqtsr~0>?4
This file is too large for
this demo. Press a key to
load a different file.
pqtsr~0>?4
Please enter the following parameters (<Esc> will cancel)
Top Row
Left Column
Bottom Row
Right Column
Word Wrap Width
Format
(A for ASCII - P for Paragraph)
pqtsr~0>?4
Use the arrow keys, PgUp, PgDn, Home and End to move around the
list of codes. Press <Enter> or <Esc> to terminate this routine.
pqtsr~0>?4
pqtsr~0>?4
pqtsr~0>?4
MhHighLightM Demo
Keyboard:
Use the cursor keys to move to the top row/left
column of the block you want to highlight and
then press <Enter>.
Then use cursor keys to highlight a portion of the
text and then press <Enter> or <Esc>. Holding one
of the <Shift> keys and using the arrow keys will
shift the entire block in the indicated direction.
Mouse:
Move mouse to top row/left column, then press and
hold the left button while moving the mouse.
Release the left button to mark the block. Holding
*Both* mouse buttons and then moving the mouse
will shift the entire block. If you don't want to
mark a block, simply click the right button.
pqtsr~0>?4
Instructions for Calendar
Move the highlighted date with the cursor
keys - change the month with <PgUp> and
<PgDn> or change the year with the <Ctrl-
PgUp> & <Ctrl-PgDn>. You may move to the
beginning or end of the 'selectable' range
with the <Home> and <End> keys. (The
selectable range is defined by the
programmer and the range is NOT restricted
to what we have used in this demo).
Days tagged with the <space bar> will be
displayed at the conclusion of this demo
along with the date last highlighted.
The programmer can assign "event" or
"holiday" descriptions to dates. These
special dates are displayed in a different
color on the calendar. The description of
the date is displayed when the user
highlights that date.
Press <Esc> or <Enter> to Exit
pqtsr~0>?4
Please enter the name of the file that you would like to view
Include the drive and path if needed. Press <Esc> to cancel.
pqtsr~0>?4
This file was not found
Press a Key
pqtsr~0>?4
pqtsr~0>?4
Muscle Demo
You can create "PullDown" menus in your programs using a
single CALL from MicroHelp's Muscle. These menus have
mouse support built right in. If you prefer, use the arrow
keys on your keyboard or press a highlighted letter to
make the desired selection.
You can optionally add transparent "shadows" to your
pulldown menus. We have turned this feature on so you can
see it in action.
Command Line Switches for This Demo
(to bypass the opening screens)
/M to reach this menu.
/D to start DirUtil.
/E to start the Editor.
/C to start the Calculator.
/B for Black and white mode.
For example: MUSCLE /D to run DirUtil without this menu
pqtsr~0>?4
1 Cursor Row: xxx Column: xxx
2 Cursor Row: xxx Column: xx
3 Cursor Row: xxx Column: xxx
4 Cursor Row: xxx Column: xx
pqtsr~0>?4
Because the windowing routines are so fast, we have delays
built into all of the routines that you are about to see!
Not only that, but we're sending only one character at a
time, updating the cursor locations after each character, and
handling word-wrap as well!
If you set the delay to zero, we'll stop updating the cursor
positions and sending the sounds through, but we'll still be
sending one character at a time.
Press a key to continue
pqtsr~0>?4
pqtsr~0>?4
pqtsr~0>?4
Save Screen Demo
This program will demonstrate how
you can save and restore portions
of the screen simply and easily.
First, we will save a portion of
the screen, then we will erase it.
After a keypress we will restore
that portion of the screen.
While we are waiting, we will show
you the code required to save and
restore portions of the screen.
Note that the routine that saves
the screen automatically reserves
memory for the save screen
operation.
Press a Key to Continue
pqtsr~0>?4
'Sample code for MhSaveScreen
MuVar.TopRow = 1
MuVar.LeftColumn = 8
' \ Screen coordinates
MuVar.BottomRow = 20
' / for the save.
MuVar.RightColumn = 12 '/
MuVar.MemSeg = 0
IF MhScreenSave%(MuVar) < 0 THEN
'If this function returns a negative value
'then an error occured and the screen was
'not saved.
PRINT "Error ";MhEcode%;" returned"
END IF
'Place code in here that writes to the screen.
'For this example we will clear a portion of the
'screen. Then wait for a keypress.
A$ = INPUT$(1)
'We are waiting here.
MuVar.Gen1 = 0
'To release memory
CALL MhScreenRestore(MuVar)
pqtsr~0>?4
The portion of the screen
that was cleared has been
restored and the memory
allocated has been released.
Press a key for the menu.
pqtsr~0>?4
MhDirectoryUtilsM
Page 1 of 8
MhDirectoryUtilsM is a file and directory management utility. It can be
incorporated into your program as a CALLable procedure or made into a
standalone utility. This routine can use two windows, with a different
path in each, allowing you to tag multiple files for copy, delete, rename,
attribute changes, or date/time stamp changes. You can also format disks,
view files and directory trees, etc. This routine fully supports the
Microsoft mouse.
Most application programs written for vertical markets (where the end-
users have very little knowledge of DOS) can be much more useful if they
include a high-level DOS interface such as this.
When this routine is called, two windows are displayed along with a
command menu at the bottom of the screen. If you do not specify a
directory to place in either window, the current directory is placed on
the left and the help screen is placed on the right.
The following pages describe the action keys used in MhDirectoryUtilsM.
<Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhDirectoryUtilsM Keyboard and Mouse Usage
Page 2 of 8
<Tab> Change active windows. If a directory is not currently
selected for the window you are about to move to, you
will be prompted for a directory.
<Up Arrow> Move the highlight bar up one file.
<Down Arrow> Move the highlight bar down one file.
<Left Arrow> Select the next command to the left on the "command
menu bar".
<Right Arrow> Select the next command to the right on the "command
menu bar".
<PgUp> Scrolls the list of selections in the active window
one page up.
<PgDn> Scrolls the list of selections in the active window
one page down.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhDirectoryUtilsM Keyboard and Mouse Usage
Page 3 of 8
<Space Bar> "Tags" or untags the entry that is currently highlighted
(this is a toggle).
<C> Copy the tagged files in the active window to the
directory specified in the inactive window. If there is
no directory defined for the inactive window, you will
be prompted for the destination path.
<M> Move the tagged files in the active window to the
directory specified in the inactive window. If there is
no directory defined for the inactive window, you will
be prompted for the path. If the destination path is on
the same drive, only the files' directory entry will be
moved. If the destination path is on a different drive,
the file will be copied, then the original will be
deleted.
<D> Delete the files tagged in the active window.
<N> Rename the file that is highlighted in the active
window.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhDirectoryUtilsM Keyboard and Mouse Usage
Page 4 of 8
<A> Modify a file's attributes. You can change the read/write,
hidden, system, and archive attributes.
<S> Sort the files in the active window by filename, extension,
date/time, size, or attributes. This sort affects only the
way the files are displayed. It does not physically alter
your disk directory.
<K> Define a file specification mask for the active window, with
DOS "wildcards" allowed. For example, you can restrict the
files displayed in the active window to "*.BAS".
<L> Define the drive:\directory that will be displayed in the
left window.
<R> Define the drive:\directory that will be displayed in the
right window.
<E> Change the date/time for the tagged files.
<F> Format a diskette.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhDirectoryUtilsM Keyboard and Mouse Usage
Page 5 of 8
<V> View a file in text or HEX format.
<T> Change the current directory for the active window.
Allows you to select the new directory from a graphic
"tree".
<Esc> Returns control to the CALLing program.
When scrolling through the entries, if an attempt is made to move up
past the first entry or down past the last entry, the routine will not
move the highlight bar. In your programs, you can disable this feature so
the highlight bar will "wrap" around.
The mouse can be used to highlight and scroll through the files, or to
pick a command from the menu at the bottom of the screen. The left mouse
button serves multiple purposes: If clicked on a file, it highlights and
tags the file that the mouse cursor is on; If clicked anywhere in the
inactive window, that window is made "active"; If clicked on a command,
that command is executed. Clicking the right button will cause this
routine to return control to the CALLing program.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhDirectoryUtilsM Technical Information
Page 6 of 8
A number of Muscle routines are used in MhDirectoryUtilsM, including
low-level routines such as file copy, disk format, memory allocation and
release, file rename, and screen save and restore.
Some of the high-level routines are used in the MhDirectoryUtilsM
routine as well. These include the mouse scroll bar, pick from drives,
pick from directory tree, and file display.
Parameters Passed to MhDirectoryUtilsM
MuVar - The user-defined TYPE that contains information such as:
Colors used in various parts of the screen; Whether to
save and restore the screen; Cursor size information; The
type of sound to use; Maximum number of files in a
directory to load into memory, etc.
LeftDir$ - The drive:\directory for the left window.
RightDir$ - The drive:\directory for the right window.
(List continued on next page)
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhDirectoryUtilsM Technical Information
Page 7 of 8
Parameters Passed to MhDirectoryUtilsM (continued)
LeftMask$ - File specification mask for the left window.
RightMask$ - File specification mask for the right window.
Terminator$() - An array containing key presses that will terminate the
routine.
HelpLevel% - Potentially used for on-line help.
Parameters Returned from MhDirectoryUtilsM
MuVar - Contains the key that was pressed to terminate input.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhDirectoryUtilsM Technical Information
Page 8 of 8
Sample Code for MhDirectoryUtilsM
'Demonstration of MicroHelp Directory Utilities
DEFINT A-Z
REM $INCLUDE: 'MHMUSCLE.BI'
DIM MuVar AS MhMuscleType
CALL MhMuscleInit(MuVar)
MuVar.MaxFiles = 510
'Maximum number of files
REDIM Terminator$(1)
Terminator$(1) = CHR$(27)
CALL MhDirectoryUtilsM(MuVar, LeftDir$, RightDir$, LeftMask$,_
RightMask$, Terminator$(), HelpLevel%)
This is really all there is to it. If you have already
CALLed MhMuscleInit, then you can place this utility in your
program with as little as FOUR lines of code!
<Page Up> for Previous <Esc> for Menu
pqtsr~0>?4
MhTextEditor
Page 1 of 5
MhTextEditor is a CALLable text editor that includes optional word-wrap.
The editor supports the following functions:
<Up-Arrow> Move up one line.
<Down-Arrow> Move down one line.
<PgUp> Move up one page.
<PgDn> Move down one page.
<Home> If not on the left-most column of the window, move to that
column, else move to the beginning of the current line.
<End> Move to the end of the current line.
<Insert> Toggle between insert and overstrike modes.
<Del> Delete the character at the cursor position.
<Backspace> Delete the character to the left.
<Tab> Move one tab stop to the right.
<Ctrl-Rt> Move right one word.
<Ctrl-Lt> Move left one word.
<Ctrl-Home> Move to the first line of text.
<Ctrl-End> Move to the last line of text
<Ctrl-N> Insert a line at the current row.
<Ctrl-T> Delete the word that the cursor is on.
<Ctrl-Y> Delete the current line.
<Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhTextEditor
Page 2 of 5
The mouse can be used to position the cursor within the window by
clicking the left button at the desired location. It can be used to scroll
through the text by clicking the left button on the scroll bar. Clicking
the right button will cause this routine to exit.
The editor in this demo has three function keys active: F1 to change the
editor configuration; F2 to load a file; F3 to save a file. Be sure to
save a file before exiting or reconfiguring the editor or your text could
be lost.
Using the configuration option, you may change the size of the editing
window and change the format of the output file from a CR-LF at the end of
each line (regular ASCII) to a CR-LF after each paragraph (paragraph
format). If you use the paragraph format, the editor will reformat the
paragraphs if you change the size of the editing window. If you use regular
ASCII format, the editor does not reformat the paragraphs to the new line
lengths.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhTextEditor
Page 3 of 5
Parameters Passed to Routine
MuVar - A TYPEed variable containing information such as:
Whether to save and restore the screen; Screen
coordinates for the window; Type of border to draw around
the window; Colors used in the display; The word wrap
width; The type of sound to use; Cursor size information;
etc.
Title$ - A string which is displayed on the top box border.
Text$() - A string array in which the edited text is stored. The
editor expects the text in the form of one paragraph per
element. If an element contains text longer than
MuVar.WordWrapWidth, that text will automatically be
formatted.
Terminator$() - A string array containing the keypresses that will cause
this routine to exit.
HelpLevel% - May be used to integrate on-line help.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhTextEditor
Page 4 of 5
Parameters Returned from Routine
Text$() - This string array contains the edited text. When word-wrap is
active, the edited text is returned to the CALLing program in
the form of one paragraph per element of Text$(). If you pass
MuVar.WordWrapWidth as a negative value, the text is returned
in Text$() just as it appears in the editing window - one line
per element.
MuVar - This TYPEd variable contains the key that was pressed to
terminate input and the highest element in Text$() that
contains text.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhTextEditor
Page 5 of 5
Editor Sample Code
REM $INCLUDE: 'MHMUSCLE.BI'
DEFINT A-Z
DIM MuVar AS MhMuscleType
CALL MhMuscleInit(Tb2) 'Initialize Muscle variables
DIM Text$(100)
'Create an array to hold the text
DIM Terminator$(1)
'Holds our terminator keys
Terminator$(1) = CHR$(27)
'Optionally you may set the window coordinates, the word
'wrap width, the title, and load the text array
CALL MhTextEditor(MuVar, Title$, Text$(), Terminator$(),_
HelpLevel%)
'MuVar.LastElement contains lines/paragraphs of text
'MuVar.Ascii contains the ASCII code of Terminator key
'MuVar.Scan contains the scan code of Terminator key
<Page Up> for Previous <Esc> for Menu
pqtsr~0>?4
MhPopUpCalc
Page 1 of 5
MhPopUpCalc is a four-function calculator with ten memory locations and
a scrolling tape. It can toggle between decimal and HEX mode and can
optionally stuff the result of a calculation into the keyboard buffer.
MhPopUpCalc will automatically determine the size of the current text
display and draw the calculator at the bottom of the screen. The tape
scrolls vertically to the top of the screen.
When MhPopUpCalc is called the first time, it allocates a memory block
for screen save/restore functions. This memory block is automatically
released when your program terminates. If you wish to release that memory
so it can be used for other purposes, pass a value of -1 in
MuVar.DontRestore to MhPopUpCalc. It will immediately release the memory
and return.
The following pages describe the action keys used in MhPopUpCalc.
<Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhPopUpCalc Keyboard Usage
Page 2 of 5
<%> Based on the value visible in the display, calculates and displays a
percentage of the running total.
<$> Toggles the "Dollar Mode" on/off. While on, the decimal is set to
two places.
<I> Toggles the "Integer Mode" on/off. This limits the calculator's
range of numbers to -32768 to +32767.
<H> Displays the calculator's help screens.
<MD> Displays the contents of the calculator's 10 memory registers.
<MZ> Zeros the values stored in calculator's memory.
<N> Negates the value in the calculator's display.
<Rn> Recall memory register "n" (0-9).
<Sn> Store the value in the display to memory register #n (0-9).
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhPopUpCalc Keyboard Usage
Page 3 of 5
<T> Toggles the "Hex Mode" on/off. Allows you to convert the
contents of the display and tape to hex. You can also enter
numbers and perform calculations in hex.
<X> Clears the current entry in the display. Like the "CE"
function available in most calculators.
<Z> Zeros the running total, the calculator's display, and
"cuts" the tape.
<Alt-F> Stuffs the value in the calculator's display into the
keyboard buffer and returns control to the CALLing program.
<Ctrl-Left> Moves the calculator to the left.
<Ctrl-Right> Moves the calculator to the right.
<Esc> Returns control to the CALLing program.
<Enter> The same as "=".
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhPopUpCalc Technical Information
Page 4 of 5
Parameters Passed to Routine
MuVar - A TYPEd variable that contains much of the information
passed to this routine, including: Whether to restore
the screen or not; The colors used in the display; The
type of sound to use.
Terminator$() - A string array containing the keys a user can press to
exit from this routine.
Parameters Returned from Routine
MuVar - The key that was pressed to terminate input is returned
in the MuVar TYPEd variable.
Result$ - Contains the contents of the calculator's display when
the terminator key was pressed.
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhPopUpCalc Technical Infomation
Page 5 of 5
'Demonstrates MhPopUpCalc SUBprogram
DEFINT A-Z
REM $INCLUDE: 'MHMUSCLE.BI'
DIM MuVar AS MhMuscleType
DIM Terminator$(1)
'DIM our Terminator key array
Terminator$(1) = CHR$(27)
CALL MhTb2Init(MuVar)
'Initialize routine
CALL MhPopUpCalc(MuVar, Terminator$(), Result$)
<Page Up> for Previous <Esc> for Menu
RINT "the calculator again.."
A$ = INPUT$(1)
'Wait for a key
LOOP UNTIL A$ = CHR$(27) 'Repeat cycle
MuVar.DontRestore = -1
'Tells routine to release memory
CALL MhPopUpCalc(MuVar, Terminator$(), Result$)
<Page Up> for Previous <Esc> for Menu
pqtsr~0>?4
Display a directory tree for what drive
pqtsr~0>?4
This is a list of
valid drives on your
system. Use the arrow
keys with <Enter>, the
mouse, or the drive
letter to select.
<Esc> aborts.
pqtsr~0>?4
You Have Selected
pqtsr~0>?4
Input a number to convert to words
(Press <Esc> to Exit)
Converted to words it appears as
'Sample code
INPUT "Input a number to convert to words" ;Z#
A$ = STR$(Z#)
PRINT MhNumberDesc$(A$)
pqtsr~0>?4
Intercepting <Ctrl-C> and <Ctrl-Break>
Page 1 of 1
BASIC's INPUT and LINE INPUT statements are useful in small utility
programs for accepting unfiltered, unmasked input from the user with a
minimum of effort by the programmer. However, if the user presses <Ctrl-C>
or <Ctrl-Break> while either of these statements are active, your program
terminates immediately and does not have an opportunity to perform any of
its housekeeping tasks prior to program termination, such as closing
files, etc.
CALLing the MhBreakDisable routine disables these keys so the
programmer doesn't have to be concerned about an unplanned program
termination. The effect of this routine is automatically disabled upon
termination of your program.
If you wish to enable <Ctrl-C> and <Ctrl-Break> prior to program
termination, CALL the MhBreakReEnable routine.
<Esc> for Menu
pqtsr~0>?4
Mouse Routines
Page 1 of 1
Muscle has a full complement of assembler and BASIC routines to make
your programs aware of and responsive to a mouse. This includes routines
for controlling the visibility, location, size, shape, and other
attributes of the mouse cursor as well as routines to report the
activation of mouse buttons.
The Muscle mouse routines include versions for use in text video
modes (where locations are addressed in rows/columns) and graphics modes
(where locations are addressed in pixels). The names of such paired
routines differ only by the presence of the letter G at the end of the
names for (g)raphics compatible routines.
<Esc> for Menu
pqtsr~0>?4
Change Scientific Notation to Decimal
Page 1 of 1
MhScientificToDec is a FUNCTION that uses a string representation of
a number that is in scientific notation to create a new string that is in
decimal notation. For example, it would convert "1.03212E-03" to
".0013212". If a number is passed in decimal notation, it is simply
returned unmodified.
Many assembler routines which are designed to manipulate floating-point
numbers require the number to be passed to them in a string format, using
STR$(Number). Unfortunately, BASIC sometimes returns the result in
scientific notation. When this is not desirable, the routine
MhScientificToDec can convert the value to decimal notation.
<Esc> for Menu
pqtsr~0>?4
Formatting Numbers in Basic Strings
Page 1 of 2
MhStringUsingM is a FUNCTION, similar to BASIC's PRINT USING statement
(but much faster), that can format a number according to a mask chosen by
the programmer and return the result as a string variable. In fact, the
mask definition characters and format are almost exactly like PRINT USING,
as it works with numbers.
However, unlike PRINT USING, a string representation of a number is
passed to the routine instead of the actual numeric variable and the
resulting string is returned by the FUNCTION instead of being displayed. A
string that is passed to the routine (the mask) directs the formatting of
the resultant string. This includes locating decimal points, choosing the
number of digits, grouping digits in threes with commas, positioning the
number's sign, and positioning dollar signs. MhStringUsingM can accept
numbers stored in scientific notation as input.
The characters on the following page are the valid mask characters
recognized by MhStringUsingM.
<Page Dn> for More <Esc> for Menu
pqtsr~0>?4
MhStringUsingM Mask Characters
Page 2 of 2
. = Represents the placement of the decimal point.
# = Represents a digit position.
, = A comma anywhere in the Format$ causes a comma to be placed
after every third digit to the left of the decimal place.
+ = At the beginning or end, causes the sign of the number to be
placed before or after the number, respectively.
- = At the end, causes negative numbers to be returned with a trailing
minus sign.
$ = Anywhere in Format$ causes a dollar sign to be placed at that
position in the resulting string (different than BASIC).
$$ = Anywhere in Format$ causes a dollar sign to be placed to the
immediate left of the formatted number.
<Page Up> for Previous <Esc> for Menu
pqtsr~0>?4
Please enter the name of the file that you would like to save
Include the drive and path if needed.
pqtsr~0>?4
Pick From Tree
Use the cursor keys to move the highlight bar to the
desired selection. Or click on the desired selection
with the mouse. Pressing <Enter> will select a
directory, or clicking on the same selection a second
time with the mouse will select a directory.
Press <Esc> to abort
pqtsr~0>?4
Please Stand By - Loading Tree
pqtsr~0>?4
Muscle Ordering Information
You can order Muscle directly from MicroHelp. The cost is $189.00 per
copy, plus shipping and handling ($6.00 UPS ground in the USA (business
addresses only!), $12.00 UPS second day air in the USA, $16.00 in
Canada, and $40.00 elsewhere). Georgia residents, please add sales tax.
Please call 1-800-922-3383 (in Georgia or outside USA, call
404-594-1185). For orders only please, send a FAX to 404-594-9629.
We welcome MasterCard, Visa, or COD (add $4.00 for COD). You can also
order via mail by sending a check or money order to:
MicroHelp Inc.
4636 Huntridge Drive
Roswell, GA 30075-2012
MicroHelp products come with a 30 day money-back performance guarantee.
If it doesn't work as advertised and we don't fix it within 10 working
days, you can return it for a refund of your purchase price.
MicroHelp's Muscle is not copy protected and there are no
royalties! We offer free technical support any business day (except
holidays) 9:00 AM to 5:00 PM EST/EDT.
<Esc> to Exit
pqtsr~0>?4
Pick a Directory From Drive
pqtsr~0>?4
System Requirements
Page 1 of 1
In order to use Muscle, you'll need the following:
An IBM PC, XT, AT, PS/2, 80386, 80486 or 100% compatible system.
Microsoft QuickBASIC 4.00b+, or MS BASIC 6.x, or MS BASIC PDS 7.x+.
PC-DOS or MS-DOS 2.1 or later. Please see our brochure for routines
that may require later versions of DOS.
An 80 column monitor.
A 360K floppy disk drive.
A hard disk drive.
MS and MS-DOS are registered trademarks and Microsoft QuickBASIC is a
trademark of Microsoft Corporation.
PC-DOS, IBM and PS/2 are trademarks of IBM Corporation.
<Esc> for Menu
pqtsr~0>?4
Results
pqtsr~0>?4
Directions for Pick123
Make a selection by using the arrow keys to position the
"bounce" bar and press <Enter>. You can also select an item by
pressing the letter that appears highlighted within that item.
Or, you can select an item by "clicking" on it with the mouse.
pqtsr~0>?4
Directions for AsmInput
You can edit the default response presented here. Arrow
keys, home, end, delete, insert, and others respond in the
"normal" manner for editing. This routine is written in
assembler for the smallest possible size.
pqtsr~0>?4
Directions for Pick-Tag
Move the highlight bar with
the arrow keys. Select or
deselect items with the
spacebar. The Page-up, Page-
down, home, and end keys will
also move you through the
list.
The mouse is fully functional
in this routine. You can
select and deselect items with
the mouse or use the scroll
bar to move through the list.
Pressing Enter, Esc, the right
mouse button or "double
clicking" an item will exit
this routine.
pqtsr~0>?4
Directions for Field Edit
Use the <Right> and <Left) arrow keys to move one character
in the obvious direction. <Ctrl-Left> and <Ctrl-Right>
arrows move from word to word. <Del> and <Backspace> work
exactly as you expect and <Ins> toggles the insert state.
<Home> and <End> move you to the first and last characters
respectively.
The input field can be wider than the physical coordinates
on the screen, giving you a "virtual" input field. Input
"masks" can be used to restrict input to certain
characters. Input in this case is limited to lower case
letters, but only because we wanted it that way!
pqtsr~0>?4
Directions for Full Screen Input
Use the up and down arrow keys or PgUp and PgDn to move
around the screen. Pressing <Tab> or <Enter> moves forward
one field, <Shift-Tab> moves back one field, <Esc>
terminates the routine. All other "normal" editing keys work
like you might expect them to work.
Notice that some fields will restrict the entry to
certain characters. This is only because we told it to! Your
programs can use these same "masks", other masks, or no
masks at all for data entry.
pqtsr~0>?4
Directions for Virtual Screen Input
Use the up and down arrow keys or PgUp and PgDn to move
around the screen. Pressing <Tab> or <Enter> moves forward
one field, <Shift-Tab> moves back one field, <Esc>
terminates the routine. All other "normal" editing keys work
like you might expect them to work.
Notice that some fields will restrict the entry to
certain characters. This is only because we told it to! Your
programs can use these same "masks", other masks, or no
masks at all for data entry.
pqtsr~0>?4
Directions for Spread Sheet Input
Use the up and down arrow keys or PgUp and PgDn to move
around the screen. Pressing <Tab> or <Enter> moves forward
one field, <Shift-Tab> moves back one field, <Esc>
terminates the routine. All other "normal" editing keys work
like you might expect them to work.
Notice that some fields will restrict the entry to
certain characters. This is only because we told it to! Your
programs can use these same "masks", other masks, or no
masks at all for data entry.
pqtsr~0>?4
Results from Routine
pqtsr~0>?4
MicroHelp array routines
Page 1 of 1
"MicroHelp Arrays" allow you to use all available DOS or EMS memory to store
data. There are two classes of MicroHelp arrays: Muscle Arrays and Huge
String Arrays.
Use "Muscle Arrays" to hold numeric data, fixed-length strings, and
user-defined types. "Huge String Arrays" are used primarily to store
variable-length strings.
Using DOS memory, MicroHelp arrays are limited to the amount of available
memory, which will normally be the "far heap". Using EMS memory, they are
limited only by the amount of LIM expanded memory installed in the PC.
Regardless of which memory you use, each array can be DIMensioned to the
positive limit of a long integer (approximately 2 billion elements).
MicroHelp arrays provide several advantages over BASIC arrays, you should
use them when you need one of the following special features:
EMS storage
More than 32767 elements
Arrays greater than 128K with odd-length elements
Byte arrays
pqtsr~0>?4
MicroHelp array routines
Page 1 of 1
"MicroHelp Arrays" allow you to use all available DOS or EMS memory to store
data. There are two classes of MicroHelp arrays: Muscle Arrays and Huge
String Arrays.
Use "Muscle Arrays" to hold numeric data, fixed-length strings, and
user-defined types. "Huge String Arrays" are used primarily to store
variable-length strings.
Using DOS memory, MicroHelp arrays are limited to the amount of available
memory, which will normally be the "far heap". Using EMS memory, they are
limited only by the amount of LIM expanded memory installed in the PC.
Regardless of which memory you use, each array can be DIMensioned to the
positive limit of a long integer (approximately 2 billion elements).
MicroHelp arrays provide several advantages over BASIC arrays, you should
use them when you need one of the following special features:
EMS storage
More than 32767 elements
Arrays greater than 128K with odd-length elements
Byte arrays
<Esc> for Menu
pqtsr~0>?4
Date FUNCTIONs
Shown below are results from some of the date FUNCTIONs
found in Muscle. Date math (adding and subtracting days,
months or years to or from a date), date differences, day of
the week and others are routines that you can CALL.
Time FUNCTIONs that provide time math and time differences
are provided as well.
pqtsr~0>?4
Environment FUNCTIONs
Shown below are results from MhGetEnvironment routine in
Muscle. The window below shows the current "master"
environment.
Muscle provides routines to get and set the "master"
environment, the "parent" environment, and the "local"
environment.
pqtsr~0>?4
can create "PullDown" menus in your programs using a
single CALL from MicroHelp's Muscle. These menus have
mouse support built right in. If you prefer, use the arrow
keys on your keyboard or press a highlighted letter to
make the desired selection.
You can optionally add transparent "shadows" to your
pulldown menus. We have turned this feature on so you can
see it in action.
Command Line Switches for This Demo
(to bypass the opening screens)
/M to reach this menu.
/D to start DirUtil.
/E to start the Editor.
/C to start the Calculator.
/B for Black and white mode.
For example: MUSCLE /D to run DirUtil without this menu
pqtsr~0>?4
Muscle Error Text Routines
Muscle provides you with a number of routines to get verbose
descriptions of error codes. You can use MhEMSErrorText for
EMS errors, MhBASICErrorText for BASIC errors,
MhMuscleErrorText for Muscle errors, and
MhExtendedDOSErrorText for extended DOS error code
descriptions.
When you press a key we will show you the error code
descriptions returned by the muscle routines using the
MhMuscleErrorText routine.
pqtsr~0>?4
SuperShell
MicroHelp's SuperShell replaces the regular BASIC SHELL and
provides several enhancements. Some of those are:
Spools most of your application to EMS or to disk,
leaving only a small "kernal" in memory.
You can place a message on a portion of the screen and
tell SuperShell not to scroll those lines.
A clock that runs in the "background".
Can "exit" automatically after a certain period of
keyboard inactivity.
Press a key to see it in action. <Esc> will return you the
menu without running the SHELL demo.
pqtsr~0>?4
SuperShell
MicroHelp's SuperShell replaces the regular BASIC SHELL and
provides several enhancements. Some of those are:
Swaps most of your application to EMS or to disk,
leaving only a small "kernel" in memory.
You can place a message on a portion of the screen and
tell SuperShell not to scroll those lines.
A clock that runs in the "background".
Can "exit" automatically after a certain period of
keyboard inactivity.
Press a key to see it in action. <Esc> will return you the
menu without running the SHELL demo.
pqtsr~0>?4
Clock
Muscle can provide a clock that will
operate in the "background". Once you
turn it on, it will continue to run
untill you turn it off.
You can have 12 and 24 hour clocks, you
also specify whether the seconds
display is turned on or off.
This clock will run until you end the
clock demo by pressing a key.
pqtsr~0>?4
Search a logical drive
The MhSearchVoulume FUNCTION can search a logical drive for
files that match a certain file specification. Select a
drive below and we will find 5 files that match the "*.BAT"
file spec.
pqtsr~0>?4
Search a series of paths
The MhSearchPath FUNCTION can search a series of paths for
a file. Press any key except <Esc> and we will search your
path for BC.EXE. <Esc> will return you to the menu.
pqtsr~0>?4
MicroHelp Muscle Overview
Muscle is MicroHelp's newest add-on library for BASIC programmers. While
it was designed with the professional programmer in mind, the routines are
easy enough to use by almost anyone who has a thorough knowledge of BASIC.
The product consists of SUBprograms and FUNCTIONs, which are written using
two languages:
Assembly language code is used for routines that are speed critical.
Another advantage to using assembly language is size - you get the
smallest possible programs. Please note that you don't need any
knowledge of assembly language in order to use this product.
BASIC code is used for routines that are not speed critical, or where
our customers will want to modify the code.
Muscle comes with complete source code, three fully indexed manuals, example
programs, and tech support. You can use our routines in your .EXE programs
with no royalties and no restrictions.
After you've tried the demo program, please feel free to call us if you have
any questions or if you want to order the product. Our telephone numbers are
1-800-922-3383 and (404) 594-1185. FAX (404) 594-9629 (orders only, please).
<Page Dn> for More <Esc> for Menu
pqtsr~0>?4
Muscle Highlights
The high-level routines in Muscle take advantage of an initialization
routine called MhMuscleInit. This routine is designed to make your life
easier by automatically handling initialization of the "MuVar" TYPED
variable (used to simplify passing parameters to routines) and resetting
the mouse if one is installed. It also assigns default colors according to
the type of display adapter it finds, provides information about the
display adapter and sets the cursor to an appropriate size - all with a
single CALL. This enhances the "portability" of your programs by
automatically adapting them to the characteristics of different systems.
Following this screen is a demonstration of some of the features found
in Muscle. For many high-level routines, you will find a description,
sample code showing how it is invoked from a program, and a working
demonstration of the routine. Many other routines are either described in
detail, or have a functioning demonstration. If you need information
about routines not included in the demo, please refer to the brochure.
Please note that the video "special effects" used in this program, such
as the "radar arm", the "propeller", etc. are not part of the Muscle
product. These features are found in QB/Pro Volume 5 (NovaScreen).
<Page Up> for Previous <Page Dn> for More <Esc> for Menu
OPENING
SYSTEM
EDITORFILENAME
FILENOTFOUND
EDITORTEXT
ILLEGALFILE
ERRORSAVINGFILER
FILETOOBIG
EDITORCONFIGUREk
ASCIITABHELPj
ASCIIBOXB
CALENDARBOX
U HILITEBOX
CALENDARHELP
DISPLAYFILENAME]
FILENOTFOUNDDISP#
BLANKCALENDARBOX
WINDOW4
WINDOWTEXT
BLANKCALENDARBOX2
WIPEIT1-1-20-5l&
DOSAVESCREENOPEN
DOSAVESCREENCODEV)
DOSAVESCREENCLOSE
DIRUTIL1
DIRUTIL2
DIRUTIL3
DIRUTIL49<
DIRUTIL5
DIRUTIL6
DIRUTIL7
DIRUTIL8
EDITOR1
EDITOR2,X
EDITOR3c]
EDITOR4
EDITOR5
POPCALC1
POPCALC2Fn
POPCALC3
POPCALC4
POPCALC5
TREEPATHNAME_
PICKFROMDRIVES
TREEPATHRESULT
NUM2WORDZ
BREAK1
MOUSE1
SCI2DEC1b
SUSING1Q
SUSING2
EDITORFILENAMESAVE
TREEDIRECTIONS
TREEWAITV
ORDER
TREEHEADING
REQUIRE1B
GENRESPONSE
123DIREC
ASMINPUTHELP
PICKTAGHELP
STRINPUTHELP<
FSINPUTHELP]
VSINPUTHELP
SSINPUTHELP
GENBIGRESPONSE#
MARRAYS
MARRAYS1
DATEDEMO
ENVIRONMENTDEMO
NOBAR.
U ERRORTEXT
MUSCLE5
SUPERSHELL'
CLOCK
SEARCHVOLUME
SEARCHPATHk
INIT1
INIT2